package gui.controller;

import gui.GuiCommands;
import gui.gui.Azubiaenderung;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.naming.RefAddr;

import Fiad.FIAD;

import valueobjects.Azubi.Azubi;


/**
 * 
 *  
 * @author Sebastian Klotten
 * 
 * Beschreibung: Diese Klasse ist für die Oberfläche "Azubiänderung" zuständig
 * 
 *
 */
public class ControllerAzubiaenderung implements ActionListener {

	Azubiaenderung refAa;
	
	public ControllerAzubiaenderung(Azubi a, FIAD fiad) {
		this.refAa = new Azubiaenderung(a, fiad);
		this.refAa.registerActionListenerForAzubiAenderungButtons(this);
		this.refAa.setVisible(true);
	}
	
	/**
	 * Diese Methode fügt den Buttons aktionen zu.
	 */
	
	@Override
	public void actionPerformed(ActionEvent e) {
		GuiCommands guiCommand = GuiCommands.valueOf(e.getActionCommand());
		switch (guiCommand) {

		case ABBRECHEN:
			refAa.abbrechenButton();
			break;
		case OK:
			refAa.okButton();
			break;
		default:
			throw new IllegalArgumentException(
					"Das Kommando kann nicht verarbeitet werden!");
		}
	}

	/**
	 * 
	 * @param a
	 * 
	 * Falls ein Fenster unsichtbar ist macht diese Methode dieses Fenster sichtbar, 
	 * und wenn es sichtbar ist aber nicht im Vordergrund, so holt diese Methode das 
	 * Fenster in den Vordergrund.
	 * 
	 */
	public void showView(Azubi a) {
		if (!refAa.isVisible()) {
			refAa.setVisible(true);
			refAa.fuelleFelder(a);

		} else {
			refAa.toFront();
		}
		
	}

}
